package org.jeecg.modules.mall.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;

import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.modules.business.entity.BusHotel;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: mall_hotel_order
 * @Author: jeecg-boot
 * @Date:   2023-05-05
 * @Version: V1.0
 */
@Data
@TableName("mall_hotel_order")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="mall_hotel_order对象", description="mall_hotel_order")
public class MallHotelOrder implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
	/**关联租户*/
	@Excel(name = "关联租户", width = 15)
    @ApiModelProperty(value = "关联租户")
    private String tenantId;
	/**关联酒店*/
	@Excel(name = "关联酒店", width = 15)
    @ApiModelProperty(value = "关联酒店")
    private String hotelId;
	/**订单号*/
	@Excel(name = "订单号", width = 15)
    @ApiModelProperty(value = "订单号")
    private String code;
	/**商城用户id*/
	@Excel(name = "商城用户id", width = 15)
    @ApiModelProperty(value = "商城用户id")
    private String mallUserId;
	/**会员卡用户id*/
	@Excel(name = "会员卡用户id", width = 15)
    @ApiModelProperty(value = "会员卡用户id")
    private String memberCardId;
	/**入住时间*/
	@Excel(name = "入住时间", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(shape = JsonFormat.Shape.STRING, timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "入住时间")
    private Date startDate;
	/**离店时间*/
	@Excel(name = "离店时间", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(shape = JsonFormat.Shape.STRING, timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "离店时间")
    private Date endDate;
	/**到店时间*/
	@Excel(name = "到店时间", width = 15)
    @ApiModelProperty(value = "到店时间")
    private String arriveTime;
	/**数量*/
	@Excel(name = "数量", width = 15)
    @ApiModelProperty(value = "数量")
    private Integer num;
	/**天数*/
	@Excel(name = "天数", width = 15)
    @ApiModelProperty(value = "天数")
    private Integer day;
	/**房型*/
	@Excel(name = "房型", width = 15)
    @ApiModelProperty(value = "房型")
    private String layoutId;
	/**预定人*/
	@Excel(name = "预定人", width = 15)
    @ApiModelProperty(value = "预定人")
    private String contactName;
	/**联系电话*/
	@Excel(name = "联系电话", width = 15)
    @ApiModelProperty(value = "联系电话")
    private String mobile;
	/**价格*/
	@Excel(name = "价格", width = 15)
    @ApiModelProperty(value = "价格")
    private BigDecimal money;
	/**状态 1未付款 2已付款 3已取消 4 已完成 5待入住 6已入住 7退款中*/
	@Excel(name = "状态 1未付款 2已付款 3已取消 4 已完成 5待入住 6已入住 7退款中", width = 15)
    @ApiModelProperty(value = "状态 1未付款 2已付款 3已取消 4 已完成 5待入住 6已入住 7退款中")
    private Integer status;
	/**优惠券id*/
	@Excel(name = "优惠券id", width = 15)
    @ApiModelProperty(value = "优惠券id")
    private String couponId;
    /**优惠券金额*/
    @Excel(name = "优惠券金额", width = 15)
    @ApiModelProperty(value = "优惠券金额")
    private BigDecimal couponMoney;
	/**会员折扣金额*/
	@Excel(name = "会员折扣金额", width = 15)
    @ApiModelProperty(value = "会员折扣金额")
    private BigDecimal memberZk;
	/**付款类型 1到店支付 2微信支付*/
	@Excel(name = "付款类型 1到店支付 2微信支付", width = 15)
    @ApiModelProperty(value = "付款类型 1到店支付 2微信支付")
    private Integer payType;
	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**房型价格id*/
    @Excel(name = "房型价格id", width = 15)
    @ApiModelProperty(value = "房型价格id")
    private String roomLayoutPriceId;

	@TableField(exist = false)
	private BigDecimal dayMoney;

    @TableField(exist = false)
    private Integer bookingType;

    @TableField(exist = false)
    private String statusName;

    @TableField(exist = false)
    private String hotelName;

    @TableField(exist = false)
    private String layoutName;

    @TableField(exist = false)
    private BusHotel hotel;

    @TableField(exist = false)
    private String couponName;
}
